草庐IT

JavaScript 数组元素到字符串

全部标签

ruby - 在 Ruby 中,是否有组合 'select' 和 'map' 的数组方法?

我有一个包含一些字符串值的Ruby数组。我需要:找到所有匹配某个谓词的元素通过转换运行匹配元素以数组形式返回结果现在我的解决方案是这样的:defexamplematchingLines=@lines.select{|line|...}results=matchingLines.map{|line|...}returnresults.uniq.sortend是否有Array或Enumerable方法将select和map组合成一个逻辑语句? 最佳答案 我通常将map和compact连同我的选择标准一起用作后缀if。compact摆脱了

Ruby:将变量合并到字符串中

我正在寻找一种在Ruby中将变量合并到字符串中的更好方法。例如,如果字符串是这样的:“动物Actionsecond_animal”我有animal、action和second_animal变量,将这些变量放入字符串的首选方法是什么? 最佳答案 惯用的方式是这样写:"The#{animal}#{action}the#{second_animal}"请注意字符串周围的双引号("):这是Ruby使用其内置占位符替换的触发器。您不能用单引号(')替换它们,否则字符串将保持原样。 关于Ruby:将

ruby 将数组转换为函数参数

假设我有一个数组。我希望将数组传递给一个函数。但是,该函数需要两个参数。有没有办法即时将数组转换为2个参数?例如:a=[0,1,2,3,4]b=[2,3]a.slice(b)在Ruby中会产生错误。我需要输入a.slice(b[0],b[1])我正在寻找更优雅的东西,如a.slice(foo.bar(b))谢谢。 最佳答案 您可以使用*(或“splat”)运算符将Array转换为参数列表:a=[0,1,2,3,4]#=>[0,1,2,3,4]b=[2,3]#=>[2,3]a.slice(*b)#=>[2,3,4]引用:Arrayto

Ruby 获取对象键作为数组

如果我有这样一个对象,我是Ruby的新手{"apple"=>"fruit","carrot"=>"vegetable"}我怎样才能返回一个只有键的数组?["apple","carrot"] 最佳答案 hash={"apple"=>"fruit","carrot"=>"vegetable"}array=hash.keys#=>["apple","carrot"]就这么简单 关于Ruby获取对象键作为数组,我们在StackOverflow上找到一个类似的问题: h

ruby-on-rails - 如果字符串为空则返回一些默认值

我经常需要检查某些值是否为空,然后像这样写“没有数据”:@user.address.blank??"Wedon'tknowuser'saddress":@user.address当我们有大约20-30个字段需要以这种方式处理时,它就变得丑陋了。我所做的是使用或方法扩展String类classStringdefor(what)self.strip.blank??what:selfendend@user.address.or("Wedon'tknowuser'saddress")现在看起来好多了。但它仍然是原始和粗糙的如何更好地解决我的问题。也许扩展ActiveSupport类或使用辅助方

ruby-on-rails - 如何从字符串中去除非字母数字字符并保留空格?

我想创建一个删除所有非字母数字字符但保留空格的正则表达式。这是为了在搜索输入到达数据库之前清理它。这是我到目前为止所拥有的:@search_query=@search_query.gsub(/[^0-9a-z]/i,'')这里的问题是它删除了所有空格。如何保留空间的解决方案? 最佳答案 在否定字符组中添加空格:@search_query=@search_query.gsub(/[^0-9a-z]/i,'') 关于ruby-on-rails-如何从字符串中去除非字母数字字符并保留空格?,我

ruby - 将字符串转换为日期时间

我需要将以下字符串解析为DateTime对象:2009年11月30日:16:29:30+0100有没有简单的方法来做到这一点?PS:我想按原样转换上面的字符串。年份后的冒号不是拼写错误。我也想用Ruby而不是RoR来解决问题。 最佳答案 这不应该也适用于Rails吗?"30/Nov/200916:29:30+0100".to_datetime 关于ruby-将字符串转换为日期时间,我们在StackOverflow上找到一个类似的问题: https://stac

ruby - 什么时候在 Ruby 中使用符号而不是字符串?

如果我的脚本中至少有两个相同字符串的实例,我是否应该改用符号? 最佳答案 长话短说一个简单的经验法则是每次需要内部标识符时都使用符号。对于Ruby完整答案不将它们用于动态生成的标识符的唯一原因是内存问题。这个问题很常见,因为许多编程语言没有符号,只有字符串,因此字符串也被用作代码中的标识符。您应该担心的是什么符号意味着,而不仅仅是您应该在什么时候使用符号。符号是标识符。如果您遵循这一理念,您很可能会把事情做对。符号和字符串的实现之间存在一些差异。关于符号最重要的一点是它们不可变。这意味着它们的值永远不会改变。因此,符号的实例化速度比

ruby-on-rails - 将对象数组转换为 ActiveRecord::Relation

我有一个对象数组,我们称它为Indicator。我想在此数组上运行Indicator类方法(defself.subjects种类、范围等的方法)。我知道在一组对象上运行类方法的唯一方法是让它们成为ActiveRecord::Relation。所以我最终求助于将to_indicators方法添加到Array。defto_indicators#TODO:Makethislessterrible.Indicator.whereid:self.pluck(:id)end有时我会在类方法中链接很多这样的范围来过滤结果。因此,即使我在ActiveRecord::Relation上调用方法,我也不知

ruby - 如何通过匹配 Capybara 中元素的精确文本来查找元素

我在HTML中有以下两个元素BerlinBerlinGermany我正在尝试使用以下Capybara方法查找元素find("a",:text=>"berlin")上面将返回两个元素,因为它们都包含文本berlin。有没有办法在Capybara中精确匹配文本? 最佳答案 使用正则表达式而不是字符串作为:text键的值:find("a",:text=>/\ABerlin\z/)查看方法的“选项哈希”部分:Capybara::Node::Finders#alldocumentation.PS:文本匹配是区分大小写的。您的示例代码实际上引发